/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package managedBeans;

import controladores.GestionRolCont;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import modelos.pojos.Rol;
import org.apache.log4j.Logger;
import org.primefaces.component.menuitem.MenuItem;
import org.primefaces.component.submenu.Submenu;
import org.primefaces.model.DefaultMenuModel;
import org.primefaces.model.MenuModel;

/**
 *
 * @author ricardo
 */
@ManagedBean
@RequestScoped
public class MenuPpal {

    private String srx = "home.xhtml";
    private MenuModel modelo;
    protected Logger log = Logger.getLogger(MenuPpal.class);

    /** Creates a new instance of menuPpal */
    public MenuPpal() {
        contruirMenus();
    }

    public String getSrx() {
        return srx;
    }

    public void setSrx(String srx) {
        this.srx = srx;
    }

    public void opcionMenu() {
        srx = "interfazReservas.xhtml";
    }

    public String irHome() {
        return "home.xhtml";
    }

    public MenuModel getModelo() {
        return modelo;
    }

//    public void setModelo(MenuModel modelo) {
//        this.modelo = modelo;
//    }
    public void contruirMenus() {
        Rol rolSesion = GestionRolCont.consultarRol(UserSession.tipoUsuario);
        modelo = new DefaultMenuModel();
        if (rolSesion.isSolicitarReserva() || rolSesion.isConsultarReserva() || rolSesion.isCancelarReserva() || rolSesion.isConfirmarCheckIn()) {
            Submenu menuReservas = new Submenu();
            menuReservas.setLabel("Reservas");
            if (rolSesion.isSolicitarReserva()) {
                MenuItem mi = new MenuItem();
                mi.setValue("Solicitar Reserva");
                mi.setUrl("interfazReservas.xhtml");
                mi.setTarget("int");
                menuReservas.getChildren().add(mi);
            }
            if (rolSesion.isConsultarReserva()) {
                if (rolSesion.getNombre().equals("Cliente")) {
                    MenuItem mi = new MenuItem();
                    mi.setValue("Mis Reservas");
                    mi.setUrl("misReservas.xhtml");
                    mi.setTarget("int");
                    menuReservas.getChildren().add(mi);
                } else {
                    MenuItem mi = new MenuItem();
                    mi.setValue("Consultar Reservas");
                    mi.setUrl("consultarReservas.xhtml");
                    mi.setTarget("int");
                    menuReservas.getChildren().add(mi);
                }
            }
            if (rolSesion.isCancelarReserva()) {
                MenuItem mi = new MenuItem();
                mi.setValue("Cancelar Reserva");
                mi.setOnclick("cancelReserva.show()");
                menuReservas.getChildren().add(mi);
            }
            if (rolSesion.isConfirmarCheckIn()) {
                MenuItem mi = new MenuItem();
                mi.setValue("Confirmar Check-In");
                mi.setUrl("confirmarCheckIn.xhtml");
                mi.setTarget("int");
                menuReservas.getChildren().add(mi);
            }

            modelo.addSubmenu(menuReservas);
        }
        if (rolSesion.isGestionarCliente() || rolSesion.isGestionarHabitaciones() || rolSesion.isGestionarRoles() || rolSesion.isGestionarSaladeEventos() || rolSesion.isGestionarServiciosAdicionales() || rolSesion.isGestionarUsuarios()) {
            Submenu menuGestion = new Submenu();
            menuGestion.setLabel("Gestión");
            if (rolSesion.isGestionarCliente()) {
                MenuItem mi = new MenuItem();
                mi.setValue("Gestionar Clientes");
                mi.setUrl("gestionarClientes.xhtml");
                mi.setTarget("int");
                menuGestion.getChildren().add(mi);
                MenuItem mo = new MenuItem();
                mo.setValue("Desactivar Clientes");
                mo.setOnclick("desactivar.show()");
                menuGestion.getChildren().add(mo);
            }
            if (rolSesion.isGestionarUsuarios()) {
                MenuItem mi = new MenuItem();
                mi.setValue("Gestionar Empleados");
                mi.setUrl("gestionarEmpleados.xhtml");
                mi.setTarget("int");
                menuGestion.getChildren().add(mi);
            }
            if (rolSesion.isGestionarHabitaciones()) {
                MenuItem mi = new MenuItem();
                mi.setValue("Gestionar Habitaciones");
                mi.setUrl("gestionarHabitaciones.xhtml");
                mi.setTarget("int");
                menuGestion.getChildren().add(mi);
            }
            if (rolSesion.isGestionarSaladeEventos()) {
                MenuItem mi = new MenuItem();
                mi.setValue("Gestionar Salas de Eventos");
                mi.setUrl("gestionarSalas.xhtml");
                mi.setTarget("int");
                menuGestion.getChildren().add(mi);
            }
            if (rolSesion.isGestionarSaladeEventos()) {
                MenuItem mi = new MenuItem();
                mi.setValue("Gestionar Servicios Adicionales");
                mi.setUrl("gestionarServicios.xhtml");
                mi.setTarget("int");
                menuGestion.getChildren().add(mi);
            }
            modelo.addSubmenu(menuGestion);
        }

        if (rolSesion.isFacturar() || rolSesion.isAbonar() || rolSesion.isRegistrarServicios()) {
            Submenu menuFactura = new Submenu();
            menuFactura.setLabel("Factura");
            if (rolSesion.isFacturar()) {
                MenuItem mi = new MenuItem();
                mi.setValue("Facturar - Check-Out");
                mi.setUrl("facturar.xhtml");
                mi.setTarget("int");
                menuFactura.getChildren().add(mi);
            }
            modelo.addSubmenu(menuFactura);
        }

        if (rolSesion.isConfigurarInformes() || rolSesion.isGenerarInforme()) {
            Submenu menuInformes = new Submenu();
            menuInformes.setLabel("Informe");
            if (rolSesion.isFacturar()) {
                MenuItem mi = new MenuItem();
                mi.setValue("Configurar/Generar Informes");
//                mi.setUrl("gestionarClientes.xhtml");
//                mi.setTarget("int");
                menuInformes.getChildren().add(mi);
            }
            modelo.addSubmenu(menuInformes);
        }

    }
}
